﻿using EmbedIO;
using EmbedIO.Routing;
using EmbedIO.WebApi;
using System;
using System.Threading.Tasks;

namespace SSC.WebApi
{
    /// <summary>
    /// ApiHost 使用 EmbedIO 启动嵌入式 Web API 服务，适合桌面应用（WPF/WinForms）。
    /// 提供数据查询和控制接口，供 MES 或其他系统调用。
    /// </summary>
    public static class ApiHost
    {
        private static WebServer _server;

        /// <summary>
        /// 启动 API 服务（在 WPF 启动时调用）
        /// </summary>
        public static void Start()
        {
            if (_server != null) return;

            _server = new WebServer(o => o
                    .WithUrlPrefix("http://localhost:8088") // 本地监听端口
                    .WithMode(HttpListenerMode.EmbedIO))
                .WithWebApi("/api", m => m
                    .WithController<ApiController>()); // 注册 API 控制器

            _server.RunAsync(); // 异步启动
        }

        /// <summary>
        /// 停止 API 服务
        /// </summary>
        public static void Stop()
        {
            if (_server != null)
            {
                _server.Dispose();
                _server = null;
            }
        }
    }
}
